iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0

之前因為可能因為需要使用收集的資料作分析,所以做了一個使用 Django來生成excel檔案的功能,程式碼如下

def excel_export(request):
    """
    匯出excel表格
    """
    list_obj = MachineParameters.objects.all().order_by("id")
    if list_obj:
        # 建立工作薄
        ws = Workbook(encoding='utf-8')
        w = ws.add_sheet(u"sheet1")
        w.write(0, 0, u"id")
        w.write(0, 1, u"Oil_Temp_Current_Val")
        #中間跳過
        w.write(0, 7, u"OilTempCurrentValPhase5")
        w.write(0, 8, u"totalGoodProductionNumber")
        # 寫入資料
        excel_row = 1
        for obj in list_obj:
            data_id = obj.id
            Oil_Temp_Current_Val = obj.Oil_Temp_Current_Val
            totalProductionNumber = obj.totalProductionNumber
            #中間跳過
            w.write(excel_row, 7, OilTempCurrentValPhase5)
            w.write(excel_row, 8, totalGoodProductionNumber)
            excel_row += 1
        # 檢測檔案是夠存在
        # 方框中程式碼是儲存本地檔案使用,如不需要請刪除該程式碼
        ###########################
        exist_file = os.path.exists("test.xls")
        if exist_file:
            os.remove(r"test.xls")
        ws.save("test.xls")
        ############################
      
        output = BytesIO()
        ws.save(output)
        output.seek(0)
        response = HttpResponse(output.getvalue(), content_type='application/vnd.ms-excel')
        response['Content-Disposition'] = 'attachment; filename=MachineParameters.xls'
        response.write(output.getvalue())
        return response

這個功能基本算是直接 copy 內容農場的程式碼, 沒辦法,功能方面剛好符合我的需求
使用來源:python (django)匯出資料庫中的資訊為excel表格
這邊有稍微進階一點的,有興趣可以參考一下。
django 一鍵生成excel表格並下載到本地,並根據時間刪除檔案,上傳excel檔案
有時候內容農場的技術文也真的能幫上點忙就是了。


上一篇
【Day6】Opcua的介紹與連線
下一篇
【Day8】在本地簡單的建立 django(Django API Server的架設 1/3)
系列文
看一般人要怎樣使用 Python以及 Django開發一個過得去的應用12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言